package com.dragon.modules.yuegou.client.wechat_mini.service;

import com.dragon.modules.yuegou.client.wechat_mini.response.Code2SessionResponse;

/**
 * 认证服务
 * 
 * @author liuwu
 *
 */
public interface AuthService {

	/**
	 * 登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。
	 * 
	 * @param jsCode 登录时获取的 code
	 * @return 用户标识（openid、sessionKey、unionId）
	 */
	Code2SessionResponse code2Session(String jsCode);

	/**
	 * 用户支付完成后，获取该用户的 UnionId，无需用户授权。本接口支持第三方平台代理查询。<br>
	 * 注意：调用前需要用户完成支付，且在支付后的五分钟内有效。
	 * 
	 * 
	 * @param openid        支付用户唯一标识
	 * @param transactionId 微信支付订单号
	 * @return unionid
	 */
	String getPaidUnionId(String openid, String transactionId);

	/**
	 * 用户支付完成后，获取该用户的 UnionId，无需用户授权。本接口支持第三方平台代理查询。<br>
	 * 注意：调用前需要用户完成支付，且在支付后的五分钟内有效。
	 * 
	 * @param openid     支付用户唯一标识
	 * @param outTradeNo 微信支付商户订单号
	 * @param mchId      微信支付分配的商户号
	 * @return unionid
	 */
	String getPaidUnionId(String openid, String outTradeNo, String mchId);

}
